# -*- coding: utf-8 -*-


# 获取当前脚本所在的路径
import os
import subprocess

current_path = os.path.dirname(os.path.abspath(__file__))
# 设置当前路径为当前脚本所在的路径
os.chdir(current_path)


def __init__(self):
    super(self).__init__()


def gen_exe():
    print("开始打包程序............")
    # pyinstall
    # -F ：单个文件。
    # -w ：关闭控制台窗口，使程序在后台运行。
    # -c ：为程序创建一个控制台窗口。
    # -D ：创建一个包含多个文件的目录结构作为输出。
    # -i ：指定程序的图标文件。
    # -n ：指定程序的名称。
    # -p ：添加额外的模块搜索路径。
    # --hidden -
    # import ：强制添加一个隐藏的导入（在运行时需要但无法自动检测到的模块）。
    # --exclude - module ：排除特定模块。
    
    # 获取当前脚本所在的路径
    current_path = os.path.dirname(os.path.abspath(__file__))
    installer_command = [f'{current_path}/venv/Scripts/pyinstaller', '-n', 'SmartGatewayTools', '--add-data', 'windows/*:./windows', '--icon', './app-48.ico', '-w', '-D', '-y', 'main.py']

    # nuitka  打包说明
    # nuitka --standalone --mingw64 --show --memory --show -progress --nofollow-imports --enable-plugin = pyqt5 --follow-import-to=need - -output- dir = output
    # 参数说明：
    # --standalone     独立环境，使结果可移植
    # --mingw64        指定c/c++编译器
    # --show-memory    显示内存的占用
    # --show-progress  显示编译的进度
    # --nofollow-imports  所有的import不编译，交给python3x.dll执行
    # --enable-plugin=pyqt5   打包pyqt5模块的需要
    # --follow-import-to=need  need为你需要编译成C/C++的py文件夹命名
    # --output-dir=output     输出文件目录
    # --onefile               打包为单个exe文件

    #installer_command = ["D:\\01-work\\01-workspace\\05-python\smartGatewayTools\\venv\\Scripts\\python", "-m", "nuitka", "--standalone", "--enable-plugin=pyqt5", "--follow-import-to=need", "--onefile", "--output-dir=dist", "main.py"]
    # 运行 PyInstaller
    subprocess.run(installer_command)

def gen_exe_1():
    import PyInstaller.__main__
 
    PyInstaller.__main__.run([
        '--name=SmartGatewayTools',
        '--icon=app.ico',
        '--add-data=windows/*:./windows',
        '-w',
        '-D',
        '-y',
        'main.py'
    ])

if __name__ == '__main__':
    gen_exe_1()